package com.example.interview.example.trafficLightSystem;

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

/**
 *   1.整个系统中只能有一套交通灯控制系统，所以，LampController类最好是设计成单例。
 *   2.LampController构造方法中要设定第一个为绿的灯。
 *   3.LampController对象的start方法中将当前灯变绿，然后启动一个定时器，每隔10秒将当前灯变红和将下一个灯变绿。
 */
public class LampController {
    private Lamp currentLamp;

    public LampController() {
        //init刚开始让由南向北的灯变绿;
        currentLamp = Lamp.S2N;
        currentLamp.light();
        /*每隔10秒将当前绿灯变为红灯，并让下一个方向的灯变绿*/
        ScheduledExecutorService timer = Executors.newScheduledThreadPool(1);
        timer.scheduleAtFixedRate(
                () -> {
                    System.out.println("每隔10秒将当前绿灯变为红灯，并让下一个方向的灯变绿!");
                    currentLamp = currentLamp.blackOut();
                },
                10,
                10,
                TimeUnit.SECONDS);
    }
}
